[NET] gso: Fix rcv mss estimate
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 20 Oct 2006 09:46:37 +0000 (10:46 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 20 Oct 2006 09:46:37 +0000 (10:46 +0100)
commit2e6d2d7144dad52e77f8fa64d598cc3d22eff1aa
tree40a9bbde2c27769283ecb1fb7efc10d849bf3f2d
parentf7d2be903b7296434d1f1c69e9d9a6f2ac221e11
[NET] gso: Fix rcv mss estimate

I noticed that with default TCP window sizes TSO + Xen would slow to a
crawl on certain machines.  It turned out that there is a bug in the
TCP stack when it comes to receiving LRO (counter part of TSO for rx)
packets.

The following fix has been applied upstream.

        [TCP]: Fix rcv mss estimate for LRO

        By passing a Linux-generated TSO packet straight back into
        Linux, Xen
        becomes our first LRO user :) Unfortunately, there is at least
        one spot
        in our stack that needs to be changed to cope with this.

        The receive MSS estimate is computed from the raw packet
        size.  This is
        broken if the packet is GSO/LRO.  Fortunately the real MSS can
        be found
        in gso_size so we simply need to use that if it is non-zero.

        Real LRO NICs should of course set the gso_size field in
        future.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
patches/linux-2.6.16.29/net-gso-5-rcv-mss.patch [new file with mode: 0644]